[INFO] cloning repository https://github.com/gersbach/ironlang
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gersbach/ironlang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgersbach%2Fironlang", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgersbach%2Fironlang'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 055415ff2620ccb2acf704c7325d86b34ef08d7a
[INFO] checking gersbach/ironlang against master#82310651b93a594a3fd69015e1562186a080d94c for pr-145770
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgersbach%2Fironlang" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/gersbach/ironlang
[INFO] finished tweaking git repo https://github.com/gersbach/ironlang
[INFO] tweaked toml for git repo https://github.com/gersbach/ironlang written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/gersbach/ironlang on toolchain 82310651b93a594a3fd69015e1562186a080d94c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/gersbach/ironlang already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded redox_termios v0.1.3
[INFO] [stderr]   Downloaded libredox v0.0.1
[INFO] [stderr]   Downloaded strum v0.26.2
[INFO] [stderr]   Downloaded redox_users v0.4.4
[INFO] [stderr]   Downloaded strum_macros v0.26.2
[INFO] [stderr]   Downloaded inline_colorization v0.1.6
[INFO] [stderr]   Downloaded ran v2.0.1
[INFO] [stderr]   Downloaded syn v2.0.53
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3cb0a57b88f7e2a0293c27bddda9255a11bf19c30fb74bd70cdf5b134bfd0f02
[INFO] running `Command { std: "docker" "start" "-a" "3cb0a57b88f7e2a0293c27bddda9255a11bf19c30fb74bd70cdf5b134bfd0f02", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3cb0a57b88f7e2a0293c27bddda9255a11bf19c30fb74bd70cdf5b134bfd0f02", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3cb0a57b88f7e2a0293c27bddda9255a11bf19c30fb74bd70cdf5b134bfd0f02", kill_on_drop: false }`
[INFO] [stdout] 3cb0a57b88f7e2a0293c27bddda9255a11bf19c30fb74bd70cdf5b134bfd0f02
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b846432335855385c8a1ab77ff27bdf2eae6480ba7c09e5a1d34760162cc3df5
[INFO] running `Command { std: "docker" "start" "-a" "b846432335855385c8a1ab77ff27bdf2eae6480ba7c09e5a1d34760162cc3df5", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.79
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling rustversion v1.0.14
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]     Checking numtoa v0.1.0
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]     Checking colored v2.1.0
[INFO] [stderr]     Checking strum v0.26.2
[INFO] [stderr]     Checking ran v2.0.1
[INFO] [stderr]     Checking inline_colorization v0.1.6
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling syn v2.0.53
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]     Checking dirs-sys-next v0.1.2
[INFO] [stderr]     Checking termion v1.5.6
[INFO] [stderr]     Checking dirs-next v2.0.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking term v0.7.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling strum_macros v0.26.2
[INFO] [stderr]     Checking ironlang v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0433]: failed to resolve: could not find `macos` in `os`
[INFO] [stdout]  --> src/binding.rs:3:98
[INFO] [stdout]   |
[INFO] [stdout] 3 |     any::Any, borrow::Borrow, collections::{HashMap, VecDeque}, fmt, hash::Hash, ops::Bound, os::macos::raw::stat
[INFO] [stdout]   |                                                                                                  ^^^^^ could not find `macos` in `os`
[INFO] [stdout]   |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]  --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/std/src/os/mod.rs:157:9
[INFO] [stdout] note: the item is gated behind the `macos` feature
[INFO] [stdout]  --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/std/src/os/mod.rs:156:7
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `macos` in `os`
[INFO] [stdout]   --> src/main.rs:19:140
[INFO] [stdout]    |
[INFO] [stdout] 19 | ...ash, io::{stdin, stdout, Write}, ops::Bound, os::macos::raw::stat, sync::Condvar, vec
[INFO] [stdout]    |                                                     ^^^^^ could not find `macos` in `os`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/std/src/os/mod.rs:157:9
[INFO] [stdout] note: the item is gated behind the `macos` feature
[INFO] [stdout]   --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/std/src/os/mod.rs:156:7
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `any::Any`, `borrow::Borrow`, and `ops::Bound`
[INFO] [stdout]  --> src/binding.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     any::Any, borrow::Borrow, collections::{HashMap, VecDeque}, fmt, hash::Hash, ops::Bound, os::macos::raw::stat
[INFO] [stdout]   |     ^^^^^^^^  ^^^^^^^^^^^^^^                                                     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Diagnostic`, `ExpressionSyntax`, `StatementSyntax`, `TextSpan`, `TypeClause`, and `self`
[INFO] [stdout]  --> src/binding.rs:9:54
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...::{self, Diagnostic, DiagnosticBag, TextSpan}, AssignmentExpressionSyntax, BinaryExpressionSyntax, BlockStatmentSyntax, CallExpressionSyntax, Conversion, ConversionType, ExpressionSyntax, ExpressionSyntaxStatement, ForStatementSyntax, IfStatementSyntax, NameExpressionSyntax, ParenthesizedExpression, StatementSyntax, SyntaxKind, SyntaxNode, SyntaxToken, TypeClause, U...
[INFO] [stdout]   |       ^^^^  ^^^^^^^^^^                 ^^^^^^^^                                                                                                                              ^^^^^^^^^^^^^^^^                                                                                                                   ^^^^^^^^^^^^^^^                                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/binding.rs:1298:9
[INFO] [stdout]      |
[INFO] [stdout] 1298 | /         ///
[INFO] [stdout] 1299 | |         /// we want to support nested scopes
[INFO] [stdout] 1300 | |         ///
[INFO] [stdout] 1301 | |         /// var x = 10
[INFO] [stdout] ...    |
[INFO] [stdout] 1306 | |         /// var x = False // this should error
[INFO] [stdout] 1307 | |         ///
[INFO] [stdout]      | |___________^
[INFO] [stdout] 1308 | /         if self.variables.clone().contains_key(&variable.name) {
[INFO] [stdout] 1309 | |             return false;
[INFO] [stdout] 1310 | |         }
[INFO] [stdout]      | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `//` for a plain comment
[INFO] [stdout]      = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/binding.rs:1330:9
[INFO] [stdout]      |
[INFO] [stdout] 1330 | /         ///
[INFO] [stdout] 1331 | |         /// we want to support nested scopes
[INFO] [stdout] 1332 | |         ///
[INFO] [stdout] 1333 | |         /// var x = 10
[INFO] [stdout] ...    |
[INFO] [stdout] 1338 | |         /// var x = False // this should error
[INFO] [stdout] 1339 | |         ///
[INFO] [stdout]      | |___________^
[INFO] [stdout] 1340 | /         if self.functions.clone().contains_key(&function.name) {
[INFO] [stdout] 1341 | |             return false;
[INFO] [stdout] 1342 | |         }
[INFO] [stdout]      | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/binding.rs:1526:9
[INFO] [stdout]      |
[INFO] [stdout] 1526 | /         ///
[INFO] [stdout] 1527 | |         /// if <condition>
[INFO] [stdout] 1528 | |         ///     <then>
[INFO] [stdout] 1529 | |         ///
[INFO] [stdout] ...    |
[INFO] [stdout] 1552 | |         ///
[INFO] [stdout] 1553 | |         ///
[INFO] [stdout]      | |___________^
[INFO] [stdout] 1554 | /         if let Some(else_stmt) = statment.else_statement {
[INFO] [stdout] 1555 | |             let else_label = self.generate_label();
[INFO] [stdout] 1556 | |             let end_label = self.generate_label();
[INFO] [stdout] ...    |
[INFO] [stdout] 1590 | |             return self.rewrite_statment(result);
[INFO] [stdout] 1591 | |         }
[INFO] [stdout]      | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/binding.rs:1601:9
[INFO] [stdout]      |
[INFO] [stdout] 1601 | /         ///
[INFO] [stdout] 1602 | |         ///
[INFO] [stdout] 1603 | |         /// while <condition>
[INFO] [stdout] 1604 | |         ///     <body>
[INFO] [stdout] ...    |
[INFO] [stdout] 1614 | |         ///
[INFO] [stdout] 1615 | |         ///        
[INFO] [stdout]      | |___________________^
[INFO] [stdout] 1616 |           let continue_label = self.generate_label();
[INFO] [stdout]      |           ------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]     --> src/binding.rs:1623:73
[INFO] [stdout]      |
[INFO] [stdout] 1623 |             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((continue_label.clone())));
[INFO] [stdout]      |                                                                         ^                      ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1623 -             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((continue_label.clone())));
[INFO] [stdout] 1623 +             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new(continue_label.clone()));
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]     --> src/binding.rs:1625:73
[INFO] [stdout]      |
[INFO] [stdout] 1625 |             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((check_label)));
[INFO] [stdout]      |                                                                         ^           ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1625 -             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((check_label)));
[INFO] [stdout] 1625 +             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new(check_label));
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]     --> src/binding.rs:1630:73
[INFO] [stdout]      |
[INFO] [stdout] 1630 |             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((end_label)));
[INFO] [stdout]      |                                                                         ^         ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1630 -             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((end_label)));
[INFO] [stdout] 1630 +             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new(end_label));
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/binding.rs:1653:9
[INFO] [stdout]      |
[INFO] [stdout] 1653 | /         ///
[INFO] [stdout] 1654 | |         /// ---->
[INFO] [stdout] 1655 | |         ///
[INFO] [stdout] 1656 | |         ///
[INFO] [stdout] ...    |
[INFO] [stdout] 1663 | |         ///     }
[INFO] [stdout] 1664 | |         /// }
[INFO] [stdout]      | |_____________^
[INFO] [stdout] ...
[INFO] [stdout] 1668 | /         let variable_declaration = BoundNodeKind::BoundVariableDeclaration(
[INFO] [stdout] 1669 | |             BoundVariableDeclarion::new(statment.variable.clone(), *statment.lower_bound),
[INFO] [stdout] 1670 | |         );
[INFO] [stdout]      | |__________- rustdoc does not generate documentation for statements
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SyntaxToken`
[INFO] [stdout]  --> src/compilation_unit.rs:1:37
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{SyntaxKind, SyntaxNode, SyntaxToken};
[INFO] [stdout]   |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `format` and `path::Display`
[INFO] [stdout]  --> src/diagnostics.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{self, format},
[INFO] [stdout]   |                 ^^^^^^
[INFO] [stdout] 3 |     path::Display,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BoundBinaryOperator`, `SyntaxToken`, `Value`, and `diagnostics::TextSpan`
[INFO] [stdout]   --> src/parser_tests.rs:8:19
[INFO] [stdout]    |
[INFO] [stdout] 8  |         binding::{BoundBinaryOperator, BoundBinaryOperatorKind},
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 9  |         diagnostics::TextSpan,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |         get_binary_precedence, Children, SyntaxKind, SyntaxNode, SyntaxToken, SyntaxTree, Value,
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BoundScope` and `BoundVariableDeclarion`
[INFO] [stdout]   --> src/main.rs:14:146
[INFO] [stdout]    |
[INFO] [stdout] 14 | ...ope, BoundIfStatement, BoundNodeKind, BoundScope, BoundUnaryOperatorKind, BoundVariableDeclarion, BoundWhileStatment, BuiltInFunctions...
[INFO] [stdout]    |                                          ^^^^^^^^^^                          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `inline_colorization::*`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use inline_colorization::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `binary_heap::Iter`, `f32::consts::E`, `hash::Hash`, `ops::Bound`, `sync::Condvar`, and `write`
[INFO] [stdout]   --> src/main.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 | ...::{binary_heap::Iter, HashMap}, f32::consts::E, fmt::{self, write}, hash::Hash, io::{stdin, stdout, Write}, ops::Bound, os::macos::raw::stat, sync::Condvar, vec
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^            ^^^^^^^^^^^^^^              ^^^^^   ^^^^^^^^^^                              ^^^^^^^^^^                        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     while true {
[INFO] [stdout]    |     ^^^^^^^^^^ help: use `loop`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]     --> src/main.rs:1030:9
[INFO] [stdout]      |
[INFO] [stdout] 1030 |         while true {
[INFO] [stdout]      |         ^^^^^^^^^^ help: use `loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/main.rs:1032:16
[INFO] [stdout]      |
[INFO] [stdout] 1032 |             if (token.kind == SyntaxKind::EndOfFileToekn) {
[INFO] [stdout]      |                ^                                        ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1032 -             if (token.kind == SyntaxKind::EndOfFileToekn) {
[INFO] [stdout] 1032 +             if token.kind == SyntaxKind::EndOfFileToekn {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]     --> src/main.rs:1062:9
[INFO] [stdout]      |
[INFO] [stdout] 1062 |         while true {
[INFO] [stdout]      |         ^^^^^^^^^^ help: use `loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/main.rs:1229:13
[INFO] [stdout]      |
[INFO] [stdout] 1229 | /             /// if parse_statement did not consume any tokens,
[INFO] [stdout] 1230 | |             /// let's skip the current token and continue we do not
[INFO] [stdout] 1231 | |             /// need to report and error because we'll aready tried
[INFO] [stdout] 1232 | |             /// to parse an expression statment
[INFO] [stdout]      | |_______________________________________________^
[INFO] [stdout] 1233 | /             if self.current() == start_token {
[INFO] [stdout] 1234 | |                 self.next_token();
[INFO] [stdout] 1235 | |             }
[INFO] [stdout]      | |_____________- rustdoc does not generate documentation for expressions
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]     --> src/main.rs:1315:9
[INFO] [stdout]      |
[INFO] [stdout] 1315 |         while true {
[INFO] [stdout]      |         ^^^^^^^^^^ help: use `loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `macos` in `os`
[INFO] [stdout]  --> src/binding.rs:3:98
[INFO] [stdout]   |
[INFO] [stdout] 3 |     any::Any, borrow::Borrow, collections::{HashMap, VecDeque}, fmt, hash::Hash, ops::Bound, os::macos::raw::stat
[INFO] [stdout]   |                                                                                                  ^^^^^ could not find `macos` in `os`
[INFO] [stdout]   |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]  --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/std/src/os/mod.rs:157:9
[INFO] [stdout] note: the item is gated behind the `macos` feature
[INFO] [stdout]  --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/std/src/os/mod.rs:156:7
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `macos` in `os`
[INFO] [stdout]   --> src/main.rs:19:140
[INFO] [stdout]    |
[INFO] [stdout] 19 | ...ash, io::{stdin, stdout, Write}, ops::Bound, os::macos::raw::stat, sync::Condvar, vec
[INFO] [stdout]    |                                                     ^^^^^ could not find `macos` in `os`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/std/src/os/mod.rs:157:9
[INFO] [stdout] note: the item is gated behind the `macos` feature
[INFO] [stdout]   --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/std/src/os/mod.rs:156:7
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `any::Any`, `borrow::Borrow`, and `ops::Bound`
[INFO] [stdout]  --> src/binding.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     any::Any, borrow::Borrow, collections::{HashMap, VecDeque}, fmt, hash::Hash, ops::Bound, os::macos::raw::stat
[INFO] [stdout]   |     ^^^^^^^^  ^^^^^^^^^^^^^^                                                     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Diagnostic`, `ExpressionSyntax`, `StatementSyntax`, `TextSpan`, `TypeClause`, and `self`
[INFO] [stdout]  --> src/binding.rs:9:54
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...::{self, Diagnostic, DiagnosticBag, TextSpan}, AssignmentExpressionSyntax, BinaryExpressionSyntax, BlockStatmentSyntax, CallExpressionSyntax, Conversion, ConversionType, ExpressionSyntax, ExpressionSyntaxStatement, ForStatementSyntax, IfStatementSyntax, NameExpressionSyntax, ParenthesizedExpression, StatementSyntax, SyntaxKind, SyntaxNode, SyntaxToken, TypeClause, U...
[INFO] [stdout]   |       ^^^^  ^^^^^^^^^^                 ^^^^^^^^                                                                                                                              ^^^^^^^^^^^^^^^^                                                                                                                   ^^^^^^^^^^^^^^^                                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/binding.rs:1298:9
[INFO] [stdout]      |
[INFO] [stdout] 1298 | /         ///
[INFO] [stdout] 1299 | |         /// we want to support nested scopes
[INFO] [stdout] 1300 | |         ///
[INFO] [stdout] 1301 | |         /// var x = 10
[INFO] [stdout] ...    |
[INFO] [stdout] 1306 | |         /// var x = False // this should error
[INFO] [stdout] 1307 | |         ///
[INFO] [stdout]      | |___________^
[INFO] [stdout] 1308 | /         if self.variables.clone().contains_key(&variable.name) {
[INFO] [stdout] 1309 | |             return false;
[INFO] [stdout] 1310 | |         }
[INFO] [stdout]      | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `//` for a plain comment
[INFO] [stdout]      = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/binding.rs:1330:9
[INFO] [stdout]      |
[INFO] [stdout] 1330 | /         ///
[INFO] [stdout] 1331 | |         /// we want to support nested scopes
[INFO] [stdout] 1332 | |         ///
[INFO] [stdout] 1333 | |         /// var x = 10
[INFO] [stdout] ...    |
[INFO] [stdout] 1338 | |         /// var x = False // this should error
[INFO] [stdout] 1339 | |         ///
[INFO] [stdout]      | |___________^
[INFO] [stdout] 1340 | /         if self.functions.clone().contains_key(&function.name) {
[INFO] [stdout] 1341 | |             return false;
[INFO] [stdout] 1342 | |         }
[INFO] [stdout]      | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/binding.rs:1526:9
[INFO] [stdout]      |
[INFO] [stdout] 1526 | /         ///
[INFO] [stdout] 1527 | |         /// if <condition>
[INFO] [stdout] 1528 | |         ///     <then>
[INFO] [stdout] 1529 | |         ///
[INFO] [stdout] ...    |
[INFO] [stdout] 1552 | |         ///
[INFO] [stdout] 1553 | |         ///
[INFO] [stdout]      | |___________^
[INFO] [stdout] 1554 | /         if let Some(else_stmt) = statment.else_statement {
[INFO] [stdout] 1555 | |             let else_label = self.generate_label();
[INFO] [stdout] 1556 | |             let end_label = self.generate_label();
[INFO] [stdout] ...    |
[INFO] [stdout] 1590 | |             return self.rewrite_statment(result);
[INFO] [stdout] 1591 | |         }
[INFO] [stdout]      | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/binding.rs:1601:9
[INFO] [stdout]      |
[INFO] [stdout] 1601 | /         ///
[INFO] [stdout] 1602 | |         ///
[INFO] [stdout] 1603 | |         /// while <condition>
[INFO] [stdout] 1604 | |         ///     <body>
[INFO] [stdout] ...    |
[INFO] [stdout] 1614 | |         ///
[INFO] [stdout] 1615 | |         ///        
[INFO] [stdout]      | |___________________^
[INFO] [stdout] 1616 |           let continue_label = self.generate_label();
[INFO] [stdout]      |           ------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]     --> src/binding.rs:1623:73
[INFO] [stdout]      |
[INFO] [stdout] 1623 |             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((continue_label.clone())));
[INFO] [stdout]      |                                                                         ^                      ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1623 -             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((continue_label.clone())));
[INFO] [stdout] 1623 +             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new(continue_label.clone()));
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]     --> src/binding.rs:1625:73
[INFO] [stdout]      |
[INFO] [stdout] 1625 |             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((check_label)));
[INFO] [stdout]      |                                                                         ^           ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1625 -             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((check_label)));
[INFO] [stdout] 1625 +             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new(check_label));
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]     --> src/binding.rs:1630:73
[INFO] [stdout]      |
[INFO] [stdout] 1630 |             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((end_label)));
[INFO] [stdout]      |                                                                         ^         ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1630 -             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((end_label)));
[INFO] [stdout] 1630 +             BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new(end_label));
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/binding.rs:1653:9
[INFO] [stdout]      |
[INFO] [stdout] 1653 | /         ///
[INFO] [stdout] 1654 | |         /// ---->
[INFO] [stdout] 1655 | |         ///
[INFO] [stdout] 1656 | |         ///
[INFO] [stdout] ...    |
[INFO] [stdout] 1663 | |         ///     }
[INFO] [stdout] 1664 | |         /// }
[INFO] [stdout]      | |_____________^
[INFO] [stdout] ...
[INFO] [stdout] 1668 | /         let variable_declaration = BoundNodeKind::BoundVariableDeclaration(
[INFO] [stdout] 1669 | |             BoundVariableDeclarion::new(statment.variable.clone(), *statment.lower_bound),
[INFO] [stdout] 1670 | |         );
[INFO] [stdout]      | |__________- rustdoc does not generate documentation for statements
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SyntaxToken`
[INFO] [stdout]  --> src/compilation_unit.rs:1:37
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{SyntaxKind, SyntaxNode, SyntaxToken};
[INFO] [stdout]   |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `format` and `path::Display`
[INFO] [stdout]  --> src/diagnostics.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{self, format},
[INFO] [stdout]   |                 ^^^^^^
[INFO] [stdout] 3 |     path::Display,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BoundScope` and `BoundVariableDeclarion`
[INFO] [stdout]   --> src/main.rs:14:146
[INFO] [stdout]    |
[INFO] [stdout] 14 | ...ope, BoundIfStatement, BoundNodeKind, BoundScope, BoundUnaryOperatorKind, BoundVariableDeclarion, BoundWhileStatment, BuiltInFunctions...
[INFO] [stdout]    |                                          ^^^^^^^^^^                          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `inline_colorization::*`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use inline_colorization::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `binary_heap::Iter`, `f32::consts::E`, `hash::Hash`, `ops::Bound`, `sync::Condvar`, and `write`
[INFO] [stdout]   --> src/main.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 | ...::{binary_heap::Iter, HashMap}, f32::consts::E, fmt::{self, write}, hash::Hash, io::{stdin, stdout, Write}, ops::Bound, os::macos::raw::stat, sync::Condvar, vec
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^            ^^^^^^^^^^^^^^              ^^^^^   ^^^^^^^^^^                              ^^^^^^^^^^                        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     while true {
[INFO] [stdout]    |     ^^^^^^^^^^ help: use `loop`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]     --> src/main.rs:1030:9
[INFO] [stdout]      |
[INFO] [stdout] 1030 |         while true {
[INFO] [stdout]      |         ^^^^^^^^^^ help: use `loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/main.rs:1032:16
[INFO] [stdout]      |
[INFO] [stdout] 1032 |             if (token.kind == SyntaxKind::EndOfFileToekn) {
[INFO] [stdout]      |                ^                                        ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1032 -             if (token.kind == SyntaxKind::EndOfFileToekn) {
[INFO] [stdout] 1032 +             if token.kind == SyntaxKind::EndOfFileToekn {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]     --> src/main.rs:1062:9
[INFO] [stdout]      |
[INFO] [stdout] 1062 |         while true {
[INFO] [stdout]      |         ^^^^^^^^^^ help: use `loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/main.rs:1229:13
[INFO] [stdout]      |
[INFO] [stdout] 1229 | /             /// if parse_statement did not consume any tokens,
[INFO] [stdout] 1230 | |             /// let's skip the current token and continue we do not
[INFO] [stdout] 1231 | |             /// need to report and error because we'll aready tried
[INFO] [stdout] 1232 | |             /// to parse an expression statment
[INFO] [stdout]      | |_______________________________________________^
[INFO] [stdout] 1233 | /             if self.current() == start_token {
[INFO] [stdout] 1234 | |                 self.next_token();
[INFO] [stdout] 1235 | |             }
[INFO] [stdout]      | |_____________- rustdoc does not generate documentation for expressions
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]     --> src/main.rs:1315:9
[INFO] [stdout]      |
[INFO] [stdout] 1315 |         while true {
[INFO] [stdout]      |         ^^^^^^^^^^ help: use `loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]     --> src/binding.rs:1577:13
[INFO] [stdout]      |
[INFO] [stdout] 1575 |             return self.rewrite_statment(result);
[INFO] [stdout]      |             ------------------------------------ any code following this expression is unreachable
[INFO] [stdout] 1576 |
[INFO] [stdout] 1577 |             BoundNodeKind::Unkown
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/lexer_tests.rs:7:22
[INFO] [stdout]      |
[INFO] [stdout] 7    |         let tokens = SyntaxTree::parse_tokens("a = 10".to_string());
[INFO] [stdout]      |                      ^^^^^^^^^^^^^^^^^^^^^^^^---------------------- argument #2 of type `SourceText` is missing
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/main.rs:1027:12
[INFO] [stdout]      |
[INFO] [stdout] 1027 |     pub fn parse_tokens(text: String, source_text: SourceText) -> Vec<SyntaxToken> {
[INFO] [stdout]      |            ^^^^^^^^^^^^               -----------------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]      |
[INFO] [stdout] 7    |         let tokens = SyntaxTree::parse_tokens("a = 10".to_string(), /* SourceText */);
[INFO] [stdout]      |                                                                   ++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing fields `_type` and `string` in initializer of `Value`
[INFO] [stdout]   --> src/lexer_tests.rs:54:29
[INFO] [stdout]    |
[INFO] [stdout] 54 |                 value: Some(Value {
[INFO] [stdout]    |                             ^^^^^ missing `_type` and `string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/parser_tests.rs:37:32
[INFO] [stdout]      |
[INFO] [stdout] 37   |             let token_actual = SyntaxTree::parse_tokens(get_text(token.clone()));
[INFO] [stdout]      |                                ^^^^^^^^^^^^^^^^^^^^^^^^------------------------- argument #2 of type `SourceText` is missing
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/main.rs:1027:12
[INFO] [stdout]      |
[INFO] [stdout] 1027 |     pub fn parse_tokens(text: String, source_text: SourceText) -> Vec<SyntaxToken> {
[INFO] [stdout]      |            ^^^^^^^^^^^^               -----------------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]      |
[INFO] [stdout] 37   |             let token_actual = SyntaxTree::parse_tokens(get_text(token.clone()), /* SourceText */);
[INFO] [stdout]      |                                                                                ++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `MemberSyntax` doesn't implement `Debug`
[INFO] [stdout]    --> src/main.rs:662:18
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |          ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 662 |     MemberSyntax(MemberSyntax),
[INFO] [stdout]     |                  ^^^^^^^^^^^^ the trait `Debug` is not implemented for `MemberSyntax`
[INFO] [stdout]     |
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `MemberSyntax` or manually `impl Debug for MemberSyntax`
[INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 668 + #[derive(Debug)]
[INFO] [stdout] 669 | pub struct MemberSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `GlobalStatementSyntax` doesn't implement `Debug`
[INFO] [stdout]    --> src/main.rs:663:27
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |          ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 663 |     GlobalStatementSyntax(GlobalStatementSyntax),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `GlobalStatementSyntax`
[INFO] [stdout]     |
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `GlobalStatementSyntax` or manually `impl Debug for GlobalStatementSyntax`
[INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 672 + #[derive(Debug)]
[INFO] [stdout] 673 | pub struct GlobalStatementSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `FunctionDeclarationSyntax` doesn't implement `Debug`
[INFO] [stdout]    --> src/main.rs:664:31
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |          ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 664 |     FunctionDeclarationSyntax(FunctionDeclarationSyntax),
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `FunctionDeclarationSyntax`
[INFO] [stdout]     |
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `FunctionDeclarationSyntax` or manually `impl Debug for FunctionDeclarationSyntax`
[INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 684 + #[derive(Debug)]
[INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `MemberSyntax: Clone` is not satisfied
[INFO] [stdout]    --> src/main.rs:662:18
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                 ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 662 |     MemberSyntax(MemberSyntax),
[INFO] [stdout]     |                  ^^^^^^^^^^^^ the trait `Clone` is not implemented for `MemberSyntax`
[INFO] [stdout]     |
[INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 668 + #[derive(Clone)]
[INFO] [stdout] 669 | pub struct MemberSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `GlobalStatementSyntax: Clone` is not satisfied
[INFO] [stdout]    --> src/main.rs:663:27
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                 ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 663 |     GlobalStatementSyntax(GlobalStatementSyntax),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `GlobalStatementSyntax`
[INFO] [stdout]     |
[INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 672 + #[derive(Clone)]
[INFO] [stdout] 673 | pub struct GlobalStatementSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `FunctionDeclarationSyntax: Clone` is not satisfied
[INFO] [stdout]    --> src/main.rs:664:31
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                 ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 664 |     FunctionDeclarationSyntax(FunctionDeclarationSyntax),
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `FunctionDeclarationSyntax`
[INFO] [stdout]     |
[INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 684 + #[derive(Clone)]
[INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `MemberSyntax: std::cmp::Eq` is not satisfied
[INFO] [stdout]    --> src/main.rs:662:18
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                        -- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 662 |     MemberSyntax(MemberSyntax),
[INFO] [stdout]     |                  ^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `MemberSyntax`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `AssertParamIsEq`
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/cmp.rs:367:1
[INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(Eq)]`
[INFO] [stdout]     |
[INFO] [stdout] 668 + #[derive(Eq)]
[INFO] [stdout] 669 | pub struct MemberSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `GlobalStatementSyntax: std::cmp::Eq` is not satisfied
[INFO] [stdout]    --> src/main.rs:663:27
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                        -- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 663 |     GlobalStatementSyntax(GlobalStatementSyntax),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `GlobalStatementSyntax`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `AssertParamIsEq`
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/cmp.rs:367:1
[INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(Eq)]`
[INFO] [stdout]     |
[INFO] [stdout] 672 + #[derive(Eq)]
[INFO] [stdout] 673 | pub struct GlobalStatementSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `FunctionDeclarationSyntax: std::cmp::Eq` is not satisfied
[INFO] [stdout]    --> src/main.rs:664:31
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                        -- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 664 |     FunctionDeclarationSyntax(FunctionDeclarationSyntax),
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `FunctionDeclarationSyntax`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `AssertParamIsEq`
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/cmp.rs:367:1
[INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(Eq)]`
[INFO] [stdout]     |
[INFO] [stdout] 684 + #[derive(Eq)]
[INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&MemberSyntax`
[INFO] [stdout]    --> src/main.rs:662:18
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                            --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 662 |     MemberSyntax(MemberSyntax),
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `MemberSyntax`
[INFO] [stdout]    --> src/main.rs:668:1
[INFO] [stdout]     |
[INFO] [stdout] 668 | pub struct MemberSyntax {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 668 + #[derive(PartialEq)]
[INFO] [stdout] 669 | pub struct MemberSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&GlobalStatementSyntax`
[INFO] [stdout]    --> src/main.rs:663:27
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                            --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 663 |     GlobalStatementSyntax(GlobalStatementSyntax),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `GlobalStatementSyntax`
[INFO] [stdout]    --> src/main.rs:672:1
[INFO] [stdout]     |
[INFO] [stdout] 672 | pub struct GlobalStatementSyntax {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 672 + #[derive(PartialEq)]
[INFO] [stdout] 673 | pub struct GlobalStatementSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&FunctionDeclarationSyntax`
[INFO] [stdout]    --> src/main.rs:664:31
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                            --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 664 |     FunctionDeclarationSyntax(FunctionDeclarationSyntax),
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `FunctionDeclarationSyntax`
[INFO] [stdout]    --> src/main.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | pub struct FunctionDeclarationSyntax {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 684 + #[derive(PartialEq)]
[INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `strum::IntoEnumIterator`
[INFO] [stdout]  --> src/binding.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use strum::IntoEnumIterator; // 0.17.1
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `strum::IntoEnumIterator`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use strum::IntoEnumIterator; // 0.17.1
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `return_type`
[INFO] [stdout]    --> src/binding.rs:443:64
[INFO] [stdout]     |
[INFO] [stdout] 443 |     pub fn new(name: String, paremeters: Vec<ParameterSymbol>, return_type: Type) -> Self {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_type`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/binding.rs:751:13
[INFO] [stdout]     |
[INFO] [stdout] 751 |         let mut scope = Some(BoundScope::new(parent_scope.clone()));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/binding.rs:852:13
[INFO] [stdout]     |
[INFO] [stdout] 852 |         let mut function_option = functions.functions.iter().find(|f| f.name == expression.identifier.text);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/binding.rs:942:13
[INFO] [stdout]     |
[INFO] [stdout] 942 |         let name = identifier.text;
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_read_only`
[INFO] [stdout]     --> src/binding.rs:1042:13
[INFO] [stdout]      |
[INFO] [stdout] 1042 |         let is_read_only = syntax.clone().identifier.kind == SyntaxKind::LetKeyword;
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_read_only`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/binding.rs:1039:13
[INFO] [stdout]      |
[INFO] [stdout] 1039 |         let mut name = syntax.clone().identifier.text;
[INFO] [stdout]      |             ----^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `variable_name`
[INFO] [stdout]     --> src/binding.rs:1087:17
[INFO] [stdout]      |
[INFO] [stdout] 1087 |             let variable_name = VariableSymbol {
[INFO] [stdout]      |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variable_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/binding.rs:1297:44
[INFO] [stdout]      |
[INFO] [stdout] 1297 |     pub fn try_declare_variable(&mut self, name: String, variable: VariableSymbol) -> bool {
[INFO] [stdout]      |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/binding.rs:1329:44
[INFO] [stdout]      |
[INFO] [stdout] 1329 |     pub fn try_declare_function(&mut self, name: String, function: FunctionSymbol) -> bool {
[INFO] [stdout]      |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]   --> src/diagnostics.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         kind: SyntaxKind,
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_kind`
[INFO] [stdout]   --> src/diagnostics.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         expected_kind: SyntaxKind,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_`
[INFO] [stdout]   --> src/diagnostics.rs:74:71
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn report_undefined_unary_operator(&mut self, span: TextSpan, type_: Type) {
[INFO] [stdout]    |                                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_type_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_`
[INFO] [stdout]   --> src/diagnostics.rs:84:61
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn report_invalid_number(&mut self, span: TextSpan, type_: Type) {
[INFO] [stdout]    |                                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_type_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]   --> src/parser_tests.rs:28:25
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn assert_token(kind: SyntaxKind, text: String) {}
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]   --> src/parser_tests.rs:28:43
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn assert_token(kind: SyntaxKind, text: String) {}
[INFO] [stdout]    |                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/source_text.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let mut lines = source_text.parse_lines(&source_text, text);
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_lenght`
[INFO] [stdout]   --> src/source_text.rs:48:17
[INFO] [stdout]    |
[INFO] [stdout] 48 |             let line_lenght = position - line_start;
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_lenght`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `diagnostic`
[INFO] [stdout]   --> src/main.rs:70:17
[INFO] [stdout]    |
[INFO] [stdout] 70 |             for diagnostic in parser.diagnostics.diagnostics {
[INFO] [stdout]    |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_diagnostic`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:335:17
[INFO] [stdout]     |
[INFO] [stdout] 335 |             let mut start = self.position;
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:357:17
[INFO] [stdout]     |
[INFO] [stdout] 357 |             let mut start = self.position;
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `done` is never read
[INFO] [stdout]    --> src/main.rs:562:21
[INFO] [stdout]     |
[INFO] [stdout] 562 |                     done = true;
[INFO] [stdout]     |                     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_keyword`
[INFO] [stdout]    --> src/main.rs:689:16
[INFO] [stdout]     |
[INFO] [stdout] 689 |     pub fn new(function_keyword: SyntaxToken, 
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_keyword`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifier`
[INFO] [stdout]    --> src/main.rs:690:13
[INFO] [stdout]     |
[INFO] [stdout] 690 |             identifier: SyntaxToken,
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parenthesis_open_token`
[INFO] [stdout]    --> src/main.rs:691:13
[INFO] [stdout]     |
[INFO] [stdout] 691 |             parenthesis_open_token: SyntaxToken,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parenthesis_open_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seoerated_syntax_list`
[INFO] [stdout]    --> src/main.rs:692:13
[INFO] [stdout]     |
[INFO] [stdout] 692 |             seoerated_syntax_list: SeperatedSyntaxList,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seoerated_syntax_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parenthesis_closed_token`
[INFO] [stdout]    --> src/main.rs:693:13
[INFO] [stdout]     |
[INFO] [stdout] 693 |             parenthesis_closed_token: SyntaxToken,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parenthesis_closed_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_clasue`
[INFO] [stdout]    --> src/main.rs:694:13
[INFO] [stdout]     |
[INFO] [stdout] 694 |             type_clasue: TypeClause,
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_clasue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]    --> src/main.rs:919:5
[INFO] [stdout]     |
[INFO] [stdout] 919 |     pub fn get_span(&self) -> TextSpan {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] 920 |         let first = self.get_children().first().unwrap().get_span();
[INFO] [stdout]     |                     ----------------------------------------------- recursive call site
[INFO] [stdout]     |
[INFO] [stdout]     = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]     = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `&SyntaxNode::MemberSyntax(_)`, `&SyntaxNode::GlobalStatementSyntax(_)` and `&SyntaxNode::FunctionDeclarationSyntax(_)` not covered
[INFO] [stdout]    --> src/main.rs:949:15
[INFO] [stdout]     |
[INFO] [stdout] 949 |         match self {
[INFO] [stdout]     |               ^^^^ patterns `&SyntaxNode::MemberSyntax(_)`, `&SyntaxNode::GlobalStatementSyntax(_)` and `&SyntaxNode::FunctionDeclarationSyntax(_)` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `SyntaxNode` defined here
[INFO] [stdout]    --> src/main.rs:640:6
[INFO] [stdout]     |
[INFO] [stdout] 640 | enum SyntaxNode {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 662 |     MemberSyntax(MemberSyntax),
[INFO] [stdout]     |     ------------ not covered
[INFO] [stdout] 663 |     GlobalStatementSyntax(GlobalStatementSyntax),
[INFO] [stdout]     |     --------------------- not covered
[INFO] [stdout] 664 |     FunctionDeclarationSyntax(FunctionDeclarationSyntax),
[INFO] [stdout]     |     ------------------------- not covered
[INFO] [stdout]     = note: the matched value is of type `&SyntaxNode`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
[INFO] [stdout]     |
[INFO] [stdout] 982 ~             SyntaxNode::ParenthesizedExpression(par) => vec![*par.sub_expression.clone()],
[INFO] [stdout] 983 ~             &SyntaxNode::MemberSyntax(_) | &SyntaxNode::GlobalStatementSyntax(_) | &SyntaxNode::FunctionDeclarationSyntax(_) => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/main.rs:1010:13
[INFO] [stdout]      |
[INFO] [stdout] 1007 |             SyntaxNode::LiteralNode(num) => write!(f, "number "),
[INFO] [stdout]      |             ---------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 1010 |             SyntaxNode::LiteralNode(bool) => write!(f, "bool "),
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `SyntaxNode::MemberSyntax(_)`, `SyntaxNode::GlobalStatementSyntax(_)` and `SyntaxNode::FunctionDeclarationSyntax(_)` not covered
[INFO] [stdout]    --> src/main.rs:989:15
[INFO] [stdout]     |
[INFO] [stdout] 989 |         match self.clone() {
[INFO] [stdout]     |               ^^^^^^^^^^^^ patterns `SyntaxNode::MemberSyntax(_)`, `SyntaxNode::GlobalStatementSyntax(_)` and `SyntaxNode::FunctionDeclarationSyntax(_)` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `SyntaxNode` defined here
[INFO] [stdout]    --> src/main.rs:640:6
[INFO] [stdout]     |
[INFO] [stdout] 640 | enum SyntaxNode {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 662 |     MemberSyntax(MemberSyntax),
[INFO] [stdout]     |     ------------ not covered
[INFO] [stdout] 663 |     GlobalStatementSyntax(GlobalStatementSyntax),
[INFO] [stdout]     |     --------------------- not covered
[INFO] [stdout] 664 |     FunctionDeclarationSyntax(FunctionDeclarationSyntax),
[INFO] [stdout]     |     ------------------------- not covered
[INFO] [stdout]     = note: the matched value is of type `SyntaxNode`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
[INFO] [stdout]     |
[INFO] [stdout] 1014~             SyntaxNode::ParenthesizedExpression(par) => write!(f, "parenthesis "),
[INFO] [stdout] 1015~             SyntaxNode::MemberSyntax(_) | SyntaxNode::GlobalStatementSyntax(_) | SyntaxNode::FunctionDeclarationSyntax(_) => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]     --> src/main.rs:1027:25
[INFO] [stdout]      |
[INFO] [stdout] 1027 |     pub fn parse_tokens(text: String, source_text: SourceText) -> Vec<SyntaxToken> {
[INFO] [stdout]      |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1058:13
[INFO] [stdout]      |
[INFO] [stdout] 1058 |         let mut diagnostics = lexer.diagnostics.clone();
[INFO] [stdout]      |             ----^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected`
[INFO] [stdout]     --> src/main.rs:1175:13
[INFO] [stdout]      |
[INFO] [stdout] 1175 |         let expected: SyntaxKind = if self.current().kind == SyntaxKind::LetKeyword {
[INFO] [stdout]      |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opeator_token`
[INFO] [stdout]     --> src/main.rs:1254:17
[INFO] [stdout]      |
[INFO] [stdout] 1254 |             let opeator_token = self.next_token();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opeator_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source_text`
[INFO] [stdout]     --> src/main.rs:1266:46
[INFO] [stdout]      |
[INFO] [stdout] 1266 |     pub fn parse_compilation_unit(&mut self, source_text: SourceText) -> CompilationUnit {
[INFO] [stdout]      |                                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_source_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operator_token`
[INFO] [stdout]     --> src/main.rs:1305:17
[INFO] [stdout]      |
[INFO] [stdout] 1305 |             let operator_token = self.next_token();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operator_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operator_token`
[INFO] [stdout]     --> src/main.rs:1322:17
[INFO] [stdout]      |
[INFO] [stdout] 1322 |             let operator_token = self.next_token();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operator_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifier`
[INFO] [stdout]     --> src/main.rs:1336:13
[INFO] [stdout]      |
[INFO] [stdout] 1336 |         let identifier = self.next_token();
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `open_parenthese_token`
[INFO] [stdout]     --> src/main.rs:1337:13
[INFO] [stdout]      |
[INFO] [stdout] 1337 |         let open_parenthese_token = self.next_token();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_open_parenthese_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `closed_parenthese_token`
[INFO] [stdout]     --> src/main.rs:1339:13
[INFO] [stdout]      |
[INFO] [stdout] 1339 |         let closed_parenthese_token = self.next_token();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_closed_parenthese_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comma`
[INFO] [stdout]     --> src/main.rs:1350:21
[INFO] [stdout]      |
[INFO] [stdout] 1350 |                 let comma = self.next_token();
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_comma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]     --> src/main.rs:1386:17
[INFO] [stdout]      |
[INFO] [stdout] 1386 |             let left = self.next_token();
[INFO] [stdout]      |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous`
[INFO] [stdout]     --> src/main.rs:1461:26
[INFO] [stdout]      |
[INFO] [stdout] 1461 |     pub fn new_with_prev(previous: Compilation, syntax_tree: SyntaxTree) -> Self {
[INFO] [stdout]      |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `label`
[INFO] [stdout]     --> src/main.rs:1560:52
[INFO] [stdout]      |
[INFO] [stdout] 1560 |                 BoundNodeKind::BoundLabelStatement(label) => {
[INFO] [stdout]      |                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_label`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/main.rs:1910:16
[INFO] [stdout]      |
[INFO] [stdout] 1910 |     pub fn new(name: String) -> Self {
[INFO] [stdout]      |                ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0061, E0063, E0277, E0369, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]     --> src/binding.rs:1577:13
[INFO] [stdout]      |
[INFO] [stdout] 1575 |             return self.rewrite_statment(result);
[INFO] [stdout]      |             ------------------------------------ any code following this expression is unreachable
[INFO] [stdout] 1576 |
[INFO] [stdout] 1577 |             BoundNodeKind::Unkown
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ironlang` (bin "ironlang" test) due to 19 previous errors; 69 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0277]: `MemberSyntax` doesn't implement `Debug`
[INFO] [stdout]    --> src/main.rs:662:18
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |          ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 662 |     MemberSyntax(MemberSyntax),
[INFO] [stdout]     |                  ^^^^^^^^^^^^ the trait `Debug` is not implemented for `MemberSyntax`
[INFO] [stdout]     |
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `MemberSyntax` or manually `impl Debug for MemberSyntax`
[INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 668 + #[derive(Debug)]
[INFO] [stdout] 669 | pub struct MemberSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `GlobalStatementSyntax` doesn't implement `Debug`
[INFO] [stdout]    --> src/main.rs:663:27
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |          ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 663 |     GlobalStatementSyntax(GlobalStatementSyntax),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `GlobalStatementSyntax`
[INFO] [stdout]     |
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `GlobalStatementSyntax` or manually `impl Debug for GlobalStatementSyntax`
[INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 672 + #[derive(Debug)]
[INFO] [stdout] 673 | pub struct GlobalStatementSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `FunctionDeclarationSyntax` doesn't implement `Debug`
[INFO] [stdout]    --> src/main.rs:664:31
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |          ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 664 |     FunctionDeclarationSyntax(FunctionDeclarationSyntax),
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `FunctionDeclarationSyntax`
[INFO] [stdout]     |
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `FunctionDeclarationSyntax` or manually `impl Debug for FunctionDeclarationSyntax`
[INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 684 + #[derive(Debug)]
[INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `MemberSyntax: Clone` is not satisfied
[INFO] [stdout]    --> src/main.rs:662:18
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                 ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 662 |     MemberSyntax(MemberSyntax),
[INFO] [stdout]     |                  ^^^^^^^^^^^^ the trait `Clone` is not implemented for `MemberSyntax`
[INFO] [stdout]     |
[INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 668 + #[derive(Clone)]
[INFO] [stdout] 669 | pub struct MemberSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `GlobalStatementSyntax: Clone` is not satisfied
[INFO] [stdout]    --> src/main.rs:663:27
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                 ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 663 |     GlobalStatementSyntax(GlobalStatementSyntax),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `GlobalStatementSyntax`
[INFO] [stdout]     |
[INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 672 + #[derive(Clone)]
[INFO] [stdout] 673 | pub struct GlobalStatementSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `FunctionDeclarationSyntax: Clone` is not satisfied
[INFO] [stdout]    --> src/main.rs:664:31
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                 ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 664 |     FunctionDeclarationSyntax(FunctionDeclarationSyntax),
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `FunctionDeclarationSyntax`
[INFO] [stdout]     |
[INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 684 + #[derive(Clone)]
[INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `MemberSyntax: std::cmp::Eq` is not satisfied
[INFO] [stdout]    --> src/main.rs:662:18
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                        -- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 662 |     MemberSyntax(MemberSyntax),
[INFO] [stdout]     |                  ^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `MemberSyntax`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `AssertParamIsEq`
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/cmp.rs:367:1
[INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(Eq)]`
[INFO] [stdout]     |
[INFO] [stdout] 668 + #[derive(Eq)]
[INFO] [stdout] 669 | pub struct MemberSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `GlobalStatementSyntax: std::cmp::Eq` is not satisfied
[INFO] [stdout]    --> src/main.rs:663:27
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                        -- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 663 |     GlobalStatementSyntax(GlobalStatementSyntax),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `GlobalStatementSyntax`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `AssertParamIsEq`
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/cmp.rs:367:1
[INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(Eq)]`
[INFO] [stdout]     |
[INFO] [stdout] 672 + #[derive(Eq)]
[INFO] [stdout] 673 | pub struct GlobalStatementSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `FunctionDeclarationSyntax: std::cmp::Eq` is not satisfied
[INFO] [stdout]    --> src/main.rs:664:31
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                        -- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 664 |     FunctionDeclarationSyntax(FunctionDeclarationSyntax),
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `FunctionDeclarationSyntax`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `AssertParamIsEq`
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/cmp.rs:367:1
[INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(Eq)]`
[INFO] [stdout]     |
[INFO] [stdout] 684 + #[derive(Eq)]
[INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&MemberSyntax`
[INFO] [stdout]    --> src/main.rs:662:18
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                            --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 662 |     MemberSyntax(MemberSyntax),
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `MemberSyntax`
[INFO] [stdout]    --> src/main.rs:668:1
[INFO] [stdout]     |
[INFO] [stdout] 668 | pub struct MemberSyntax {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 668 + #[derive(PartialEq)]
[INFO] [stdout] 669 | pub struct MemberSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&GlobalStatementSyntax`
[INFO] [stdout]    --> src/main.rs:663:27
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                            --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 663 |     GlobalStatementSyntax(GlobalStatementSyntax),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `GlobalStatementSyntax`
[INFO] [stdout]    --> src/main.rs:672:1
[INFO] [stdout]     |
[INFO] [stdout] 672 | pub struct GlobalStatementSyntax {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 672 + #[derive(PartialEq)]
[INFO] [stdout] 673 | pub struct GlobalStatementSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&FunctionDeclarationSyntax`
[INFO] [stdout]    --> src/main.rs:664:31
[INFO] [stdout]     |
[INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)]
[INFO] [stdout]     |                            --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 664 |     FunctionDeclarationSyntax(FunctionDeclarationSyntax),
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `FunctionDeclarationSyntax`
[INFO] [stdout]    --> src/main.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | pub struct FunctionDeclarationSyntax {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 684 + #[derive(PartialEq)]
[INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `strum::IntoEnumIterator`
[INFO] [stdout]  --> src/binding.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use strum::IntoEnumIterator; // 0.17.1
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `strum::IntoEnumIterator`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use strum::IntoEnumIterator; // 0.17.1
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `return_type`
[INFO] [stdout]    --> src/binding.rs:443:64
[INFO] [stdout]     |
[INFO] [stdout] 443 |     pub fn new(name: String, paremeters: Vec<ParameterSymbol>, return_type: Type) -> Self {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_type`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/binding.rs:751:13
[INFO] [stdout]     |
[INFO] [stdout] 751 |         let mut scope = Some(BoundScope::new(parent_scope.clone()));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/binding.rs:852:13
[INFO] [stdout]     |
[INFO] [stdout] 852 |         let mut function_option = functions.functions.iter().find(|f| f.name == expression.identifier.text);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/binding.rs:942:13
[INFO] [stdout]     |
[INFO] [stdout] 942 |         let name = identifier.text;
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_read_only`
[INFO] [stdout]     --> src/binding.rs:1042:13
[INFO] [stdout]      |
[INFO] [stdout] 1042 |         let is_read_only = syntax.clone().identifier.kind == SyntaxKind::LetKeyword;
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_read_only`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/binding.rs:1039:13
[INFO] [stdout]      |
[INFO] [stdout] 1039 |         let mut name = syntax.clone().identifier.text;
[INFO] [stdout]      |             ----^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `variable_name`
[INFO] [stdout]     --> src/binding.rs:1087:17
[INFO] [stdout]      |
[INFO] [stdout] 1087 |             let variable_name = VariableSymbol {
[INFO] [stdout]      |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variable_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/binding.rs:1297:44
[INFO] [stdout]      |
[INFO] [stdout] 1297 |     pub fn try_declare_variable(&mut self, name: String, variable: VariableSymbol) -> bool {
[INFO] [stdout]      |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/binding.rs:1329:44
[INFO] [stdout]      |
[INFO] [stdout] 1329 |     pub fn try_declare_function(&mut self, name: String, function: FunctionSymbol) -> bool {
[INFO] [stdout]      |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]   --> src/diagnostics.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         kind: SyntaxKind,
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_kind`
[INFO] [stdout]   --> src/diagnostics.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         expected_kind: SyntaxKind,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_`
[INFO] [stdout]   --> src/diagnostics.rs:74:71
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn report_undefined_unary_operator(&mut self, span: TextSpan, type_: Type) {
[INFO] [stdout]    |                                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_type_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_`
[INFO] [stdout]   --> src/diagnostics.rs:84:61
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn report_invalid_number(&mut self, span: TextSpan, type_: Type) {
[INFO] [stdout]    |                                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_type_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/source_text.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let mut lines = source_text.parse_lines(&source_text, text);
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_lenght`
[INFO] [stdout]   --> src/source_text.rs:48:17
[INFO] [stdout]    |
[INFO] [stdout] 48 |             let line_lenght = position - line_start;
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_lenght`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `diagnostic`
[INFO] [stdout]   --> src/main.rs:70:17
[INFO] [stdout]    |
[INFO] [stdout] 70 |             for diagnostic in parser.diagnostics.diagnostics {
[INFO] [stdout]    |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_diagnostic`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:335:17
[INFO] [stdout]     |
[INFO] [stdout] 335 |             let mut start = self.position;
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:357:17
[INFO] [stdout]     |
[INFO] [stdout] 357 |             let mut start = self.position;
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `done` is never read
[INFO] [stdout]    --> src/main.rs:562:21
[INFO] [stdout]     |
[INFO] [stdout] 562 |                     done = true;
[INFO] [stdout]     |                     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_keyword`
[INFO] [stdout]    --> src/main.rs:689:16
[INFO] [stdout]     |
[INFO] [stdout] 689 |     pub fn new(function_keyword: SyntaxToken, 
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_keyword`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifier`
[INFO] [stdout]    --> src/main.rs:690:13
[INFO] [stdout]     |
[INFO] [stdout] 690 |             identifier: SyntaxToken,
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parenthesis_open_token`
[INFO] [stdout]    --> src/main.rs:691:13
[INFO] [stdout]     |
[INFO] [stdout] 691 |             parenthesis_open_token: SyntaxToken,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parenthesis_open_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seoerated_syntax_list`
[INFO] [stdout]    --> src/main.rs:692:13
[INFO] [stdout]     |
[INFO] [stdout] 692 |             seoerated_syntax_list: SeperatedSyntaxList,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seoerated_syntax_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parenthesis_closed_token`
[INFO] [stdout]    --> src/main.rs:693:13
[INFO] [stdout]     |
[INFO] [stdout] 693 |             parenthesis_closed_token: SyntaxToken,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parenthesis_closed_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_clasue`
[INFO] [stdout]    --> src/main.rs:694:13
[INFO] [stdout]     |
[INFO] [stdout] 694 |             type_clasue: TypeClause,
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_clasue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]    --> src/main.rs:919:5
[INFO] [stdout]     |
[INFO] [stdout] 919 |     pub fn get_span(&self) -> TextSpan {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] 920 |         let first = self.get_children().first().unwrap().get_span();
[INFO] [stdout]     |                     ----------------------------------------------- recursive call site
[INFO] [stdout]     |
[INFO] [stdout]     = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]     = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `&SyntaxNode::MemberSyntax(_)`, `&SyntaxNode::GlobalStatementSyntax(_)` and `&SyntaxNode::FunctionDeclarationSyntax(_)` not covered
[INFO] [stdout]    --> src/main.rs:949:15
[INFO] [stdout]     |
[INFO] [stdout] 949 |         match self {
[INFO] [stdout]     |               ^^^^ patterns `&SyntaxNode::MemberSyntax(_)`, `&SyntaxNode::GlobalStatementSyntax(_)` and `&SyntaxNode::FunctionDeclarationSyntax(_)` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `SyntaxNode` defined here
[INFO] [stdout]    --> src/main.rs:640:6
[INFO] [stdout]     |
[INFO] [stdout] 640 | enum SyntaxNode {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 662 |     MemberSyntax(MemberSyntax),
[INFO] [stdout]     |     ------------ not covered
[INFO] [stdout] 663 |     GlobalStatementSyntax(GlobalStatementSyntax),
[INFO] [stdout]     |     --------------------- not covered
[INFO] [stdout] 664 |     FunctionDeclarationSyntax(FunctionDeclarationSyntax),
[INFO] [stdout]     |     ------------------------- not covered
[INFO] [stdout]     = note: the matched value is of type `&SyntaxNode`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
[INFO] [stdout]     |
[INFO] [stdout] 982 ~             SyntaxNode::ParenthesizedExpression(par) => vec![*par.sub_expression.clone()],
[INFO] [stdout] 983 ~             &SyntaxNode::MemberSyntax(_) | &SyntaxNode::GlobalStatementSyntax(_) | &SyntaxNode::FunctionDeclarationSyntax(_) => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/main.rs:1010:13
[INFO] [stdout]      |
[INFO] [stdout] 1007 |             SyntaxNode::LiteralNode(num) => write!(f, "number "),
[INFO] [stdout]      |             ---------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 1010 |             SyntaxNode::LiteralNode(bool) => write!(f, "bool "),
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `SyntaxNode::MemberSyntax(_)`, `SyntaxNode::GlobalStatementSyntax(_)` and `SyntaxNode::FunctionDeclarationSyntax(_)` not covered
[INFO] [stdout]    --> src/main.rs:989:15
[INFO] [stdout]     |
[INFO] [stdout] 989 |         match self.clone() {
[INFO] [stdout]     |               ^^^^^^^^^^^^ patterns `SyntaxNode::MemberSyntax(_)`, `SyntaxNode::GlobalStatementSyntax(_)` and `SyntaxNode::FunctionDeclarationSyntax(_)` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `SyntaxNode` defined here
[INFO] [stdout]    --> src/main.rs:640:6
[INFO] [stdout]     |
[INFO] [stdout] 640 | enum SyntaxNode {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 662 |     MemberSyntax(MemberSyntax),
[INFO] [stdout]     |     ------------ not covered
[INFO] [stdout] 663 |     GlobalStatementSyntax(GlobalStatementSyntax),
[INFO] [stdout]     |     --------------------- not covered
[INFO] [stdout] 664 |     FunctionDeclarationSyntax(FunctionDeclarationSyntax),
[INFO] [stdout]     |     ------------------------- not covered
[INFO] [stdout]     = note: the matched value is of type `SyntaxNode`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
[INFO] [stdout]     |
[INFO] [stdout] 1014~             SyntaxNode::ParenthesizedExpression(par) => write!(f, "parenthesis "),
[INFO] [stdout] 1015~             SyntaxNode::MemberSyntax(_) | SyntaxNode::GlobalStatementSyntax(_) | SyntaxNode::FunctionDeclarationSyntax(_) => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]     --> src/main.rs:1027:25
[INFO] [stdout]      |
[INFO] [stdout] 1027 |     pub fn parse_tokens(text: String, source_text: SourceText) -> Vec<SyntaxToken> {
[INFO] [stdout]      |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1058:13
[INFO] [stdout]      |
[INFO] [stdout] 1058 |         let mut diagnostics = lexer.diagnostics.clone();
[INFO] [stdout]      |             ----^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected`
[INFO] [stdout]     --> src/main.rs:1175:13
[INFO] [stdout]      |
[INFO] [stdout] 1175 |         let expected: SyntaxKind = if self.current().kind == SyntaxKind::LetKeyword {
[INFO] [stdout]      |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opeator_token`
[INFO] [stdout]     --> src/main.rs:1254:17
[INFO] [stdout]      |
[INFO] [stdout] 1254 |             let opeator_token = self.next_token();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opeator_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source_text`
[INFO] [stdout]     --> src/main.rs:1266:46
[INFO] [stdout]      |
[INFO] [stdout] 1266 |     pub fn parse_compilation_unit(&mut self, source_text: SourceText) -> CompilationUnit {
[INFO] [stdout]      |                                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_source_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operator_token`
[INFO] [stdout]     --> src/main.rs:1305:17
[INFO] [stdout]      |
[INFO] [stdout] 1305 |             let operator_token = self.next_token();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operator_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operator_token`
[INFO] [stdout]     --> src/main.rs:1322:17
[INFO] [stdout]      |
[INFO] [stdout] 1322 |             let operator_token = self.next_token();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operator_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifier`
[INFO] [stdout]     --> src/main.rs:1336:13
[INFO] [stdout]      |
[INFO] [stdout] 1336 |         let identifier = self.next_token();
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `open_parenthese_token`
[INFO] [stdout]     --> src/main.rs:1337:13
[INFO] [stdout]      |
[INFO] [stdout] 1337 |         let open_parenthese_token = self.next_token();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_open_parenthese_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `closed_parenthese_token`
[INFO] [stdout]     --> src/main.rs:1339:13
[INFO] [stdout]      |
[INFO] [stdout] 1339 |         let closed_parenthese_token = self.next_token();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_closed_parenthese_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comma`
[INFO] [stdout]     --> src/main.rs:1350:21
[INFO] [stdout]      |
[INFO] [stdout] 1350 |                 let comma = self.next_token();
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_comma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]     --> src/main.rs:1386:17
[INFO] [stdout]      |
[INFO] [stdout] 1386 |             let left = self.next_token();
[INFO] [stdout]      |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous`
[INFO] [stdout]     --> src/main.rs:1461:26
[INFO] [stdout]      |
[INFO] [stdout] 1461 |     pub fn new_with_prev(previous: Compilation, syntax_tree: SyntaxTree) -> Self {
[INFO] [stdout]      |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `label`
[INFO] [stdout]     --> src/main.rs:1560:52
[INFO] [stdout]      |
[INFO] [stdout] 1560 |                 BoundNodeKind::BoundLabelStatement(label) => {
[INFO] [stdout]      |                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_label`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/main.rs:1910:16
[INFO] [stdout]      |
[INFO] [stdout] 1910 |     pub fn new(name: String) -> Self {
[INFO] [stdout]      |                ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0277, E0369, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ironlang` (bin "ironlang") due to 16 previous errors; 66 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "b846432335855385c8a1ab77ff27bdf2eae6480ba7c09e5a1d34760162cc3df5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b846432335855385c8a1ab77ff27bdf2eae6480ba7c09e5a1d34760162cc3df5", kill_on_drop: false }`
[INFO] [stdout] b846432335855385c8a1ab77ff27bdf2eae6480ba7c09e5a1d34760162cc3df5
